package com.legal.app.service;

import com.legal.app.domain.User;
import com.legal.app.domain.WechatUserInfo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author Ale
 * @description 微信登录服务
 * @date 2025/6/18 9:24
 */
@Service
public interface WechatAuthService {
    /**
     * 获取微信授权URL
     */
    String getAuthorizationUrl(String state);


    /**
     * 微信登录处理
     */
//    Object wechatLogin(String code, String encryptedData, String iv) throws Exception;

//    String getOpenid(String code);

    @Transactional(rollbackFor = Exception.class)
    Object wechatLogin(String code, String encryptedData, String iv) throws Exception;

    /**
     * 通过微信临时登录凭证code获取openid
     * @param code 微信登录code
     * @return openid
     * @throws Exception 微信接口调用异常
     */
//    String getOpenid(String code) throws Exception;

    /**
     * 获取微信用户信息（需用户授权）
     * @param openid 用户唯一标识
     * @param sessionKey 会话密钥
     * @return 微信用户信息
     */
//    WechatUserInfo getUserInfo(String openid, String sessionKey);


//    WechatUserInfo getUserInfo(String openid, String sessionKey, String encryptedData, String iv);
}
